package org.jeecg.modules.wlhy.report;

import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.enums.ReportPlatformEnum;
import org.jeecg.modules.third.jg.report.freight.information.dto.AppInfoDTO;
import org.jeecg.modules.third.jg.xz.park.dto.AppealDTO;
import org.jeecg.modules.wlhy.company.entity.HyCompanyConfig;
import org.jeecg.modules.wlhy.hydriver.entity.HyDriver;
import org.jeecg.modules.wlhy.hyvehicle.entity.HyVehicle;
import org.jeecg.modules.wlhy.shipping.constant.ShippingStatus;
import org.jeecg.modules.wlhy.shipping.entity.HyShippingNote;

public interface IReportService {

    ReportPlatformEnum getReportType();

    default boolean report(HyShippingNote hyShippingNote) {return true;}

    Result reportShippingNote(HyShippingNote hyShippingNote);

    default Result reportShippingNote(HyShippingNote hyShippingNote, String shippingStatus, String lng, String lat) {return Result.error("该监管参数未配置");}

    default Result reportCapitalFlow(HyShippingNote hyShippingNote) {return Result.error("该监管参数未配置");}

    default Result reportCapitalFlow(HyShippingNote hyShippingNote, String uploadBankHdImg) {return Result.error("该监管参数未配置");}

    default Result reportDriver(String driverId, String companyId) {return Result.error("该监管参数未配置");}

    default Result reportVehicle(String vehicleId, String companyId) {return Result.error("该监管参数未配置");}

    default Result reportCustomer(String customerId, String companyId) {return Result.error("该监管参数未配置");}

    void checkReport();

    default Result setReportInfo(HyCompanyConfig hyCompanyConfig) {return Result.error("该监管参数未配置");}

    default AppInfoDTO getAppInfo() {return null;}

    default Result reportTestShippingNote(String shippingJson) {return Result.error("未配置运单模拟数据上报");}

    default Result reportTestCapitalFlow(String shippingJson) {return Result.error("未配置资金流水模拟数据上报");}

    default Result validateShippingNote(HyShippingNote hyShippingNote) {
        return Result.error("未配置该功能权限");
    }

    default Result appealShippingNote(AppealDTO appealDTO) { return Result.error("未配置申请功能权限"); }

    default Result appealShippingNoteQuery(String shippingId) { return Result.error("未配置申请查询功能权限"); }

}
